iT邦幫忙

2023 iThome 鐵人賽

DAY 1
4

大家好,我是Stacy,目前任職於 Teamson 的 IT 部門。
工作職掌除了軟體開發、ERP support 之外,也包含 data 相關專案。

去年10月,公司決定重建 data 架構及流程,在評估及導入的過程中,dbt 是最關鍵的工具。它幫助我們解決公司長久以來的痛點,擺脫過去設計不良的傳統資料流程;也讓我開了新的視野,補足了我過去在 data 路上,一直無法滿足的求知慾。推薦任何以 SQL 為主的 Data Practitioners 都要認識這個工具。


dbt: The Modern Transformation Flow

什麼是 dbt

dbt 是 Data Build Tool 的縮寫,是一個 command line tool。
dbt 在 ELT 中屬於 T: transformation 的部份,是一套以 SQL 為主的資料轉換工作流程。

dbt 的產品

以產品來說,dbt 分為 dbt Core 和 dbt Cloud。

  • dbt Core:開源免費專案,可自由安裝在本機使用。
  • dbt Cloud:網頁版的付費版本,對非技術人員來說較容易上手,有免費試用方案,也有部份功能永遠免費。

官方建議使用 dbt Cloud,他們內部是以 dbt Cloud 為優先。
但我認識的 dbt 使用者,大部分是用 dbt Core。

個人認為兩者各有優缺。如果可以的話,建議兩個都用用看,再依自身狀況選擇適合的作法。
我個人在工作上是兩者搭配使用。

為什麼需要 dbt

筆者過去待過的 Data Team,大多沒有軟體開發的思維。

Software Development Best Practices 帶入資料專案,可以提昇開發效率及系統穩定性,
但許多 Data Practitioners 既沒聽過這個概念,也沒意識到這個重要性。
就算有此意識,也不知道該如何下手。

dbt 提供了工具和一套 Guideline,包含命名原則、專案文件、開發及佈署流程,讓不擅長寫程式的 Data Practitioners,也能跟隨 dbt 的建議,將 Software Development Best Practices 運用到資料專案。

dbt 能解決所有問題?

筆者認為,dbt 只是工具,dbt 本身不能解決事情,但它可以幫助想要改善資料流程的人,優雅的提昇專案品質。
dbt 只能幫到懂得善用工具的人。

dbt 並沒有強制要用官方建議的寫法,沒有規定命名方式、不一定要拆成模組。
把上千行的 SQL 原封不動搬過來也是可以跑得出來。
愛寫垃圾的話,用了 dbt 一樣寫出垃圾山。

dbt是大寫?小寫?

dbt 是小寫唷,但是我不知道緣由XD

  • dbt Labs: 開發dbt的公司(前身為 Fishtown Analytics)
  • dbt Core: dbt 開源專案
  • dbt Cloud: 官方Saas解決方案
    參考:dbt Brand Guidelines

關於本系列文章

內容

dbt Cloud 入門 (DAY 02 - DAY 13)

dbt Cloud 的基本功能,搭配 BigQuery, GitHub。
以官方文件為基底,重新調整順序及內容,搭配操作截圖,希望新手能更順利操作不卡關。
但詳細的觀念及進階知識,本系列文無法完全涵蓋,請搭配英文官方文件閱讀。

dbt 中階 (DAY 14 - DAY 22)

稍微進階的,例如 dbt macro & Jinja, incremental, generic 以外的 tests。
經過了入門 12 天,應該對 dbt 基本的流程及操作有所認識,這個部份不再提供詳細的操作步驟及截圖,但會盡量提供簡單的例子可以跟著實做。

dbt Core 入門 (DAY 23 - DAY 26)

沿用前面建立的專案,說明如何在本機環境運用 VS Code 同時開發。

其他 (DAY 27 - DAY 30)

dbt 工具以外的事情,例如推薦的社群資源、當初為什麼公司會採用 dbt、我的職涯故事等等。

對象

本次參加鐵人賽的最大動機,就是想把好東西推薦給大家。
這個系列文章的目標讀者如下(其實就是一兩年前的自己)

想改良資料轉換流程,但沒聽過 dbt 的 Data Practitioners

需要 dbt 的第一個先決條件是要有想解決的痛點。

對現有流程的不滿意,是我想用 dbt 的原因。
認知原有流程的缺陷、想尋求改善及進步,就是我學習 dbt 的動力。

對於資料轉換流程有想法、有意識,才有用 dbt 的理由。
如果是想從事 data 相關行業,但卻尚未入行,就不太適合這系列文章。
需要在這行打滾一陣子,才會對這些做法有共鳴。

聽過 dbt 也想進一步了解,但不習慣看官方文件,所以不知道如何開始的人

當初剛開始接觸 dbt 時,覺得官方文件很難入手,無法在短時間內搞懂 dbt 到底是什麼、該如何使用、如何導入。

本系列文章會以官方範例為基礎,加入中文說明、及操作截圖。
希望能提供一個選擇,讓不知如何開始的人們可以和官方文件搭配閱讀,有機會更快上手。

當然如果可以的話,還是建議大家多閱讀官方英文資源。
筆者不是專業寫手,翻譯官方文件不是我的本意,也無法鉅細靡遺說明各個細節。


今日小結&明日預告

今天聊的只是概念,對於沒接觸過 dbt 的讀者,可能有看沒有懂。
接下來這幾天會慢慢進入實做,邀請大家一同探索 dbt 的世界。

明天的內容:dbt Cloud 的準備工作(BigQuery & GitHub)

參考資料


歡迎加入 dbt community
對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加


下一篇
DAY 02 - dbt Cloud 準備工作:BigQuery、GitHub
系列文
dbt: 告別過時的SQL開發流程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
雷N
iT邦研究生 1 級 ‧ 2023-09-23 14:12:44

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:03 檢舉

河河河河河河

0
Calvin
iT邦新手 3 級 ‧ 2023-09-23 14:16:37

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:13 檢舉

河河河河河河

0
json_liang
iT邦研究生 4 級 ‧ 2023-09-23 14:21:50

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:25 檢舉

河河河河河河

0
Stacy Lo
iT邦新手 3 級 ‧ 2023-09-23 14:30:02

河河河河河河

Mandy iT邦新手 2 級 ‧ 2023-09-23 17:54:46 檢舉

河河河河河河

0
孤獨一隻雞
iT邦研究生 4 級 ‧ 2023-09-23 14:55:42

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:52 檢舉

河河河河河河

0
sponge1220
iT邦新手 4 級 ‧ 2023-09-23 15:24:13

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:34 檢舉

河河河河河河

0
Mandy
iT邦新手 2 級 ‧ 2023-09-23 17:55:22

河河河河河河

Stacy Lo iT邦新手 3 級 ‧ 2023-09-23 17:58:43 檢舉

河河河河河河

我要留言

立即登入留言